package com.ruteroelmeromero.vista;

import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import com.ruteroelmeromero.utils.Conexion;

@ManagedBean
@SessionScoped
public class Rutero extends Manejador implements Controlador{
	private String nombre;
	private long rutero;

	public long getRutero() {
		return rutero;
	}

	public void setRutero(long rutero) {
		this.rutero = rutero;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void llenar(Map<String, String> dato) {
		if (dato == null) {
			setRutero(0);
			setNombre(null);
		} else {
			setRutero(Long.parseLong(dato.get("rutero")));
			setNombre(dato.get("nombre"));
		}
	}

	public String regresar() {
		return "listaRutero.xhtml";
	}

	public String guardar() {
		String mensaje = "operacion exitosa";
		try {
			String sql = "";
			Object[][] params = null;
			if (rutero != 0) {
				sql = "UPDATE rutero SET nombre=? WHERE rutero=?";
				params = new Object[1][2];
			} else {
				sql = "INSERT INTO rutero (nombre) VALUES (?)";
				params = new Object[1][1];
			}
			params[0][0] = getNombre();
			if (rutero != 0) {
				params[0][1] = getRutero();
			}
			Conexion.update(sql, params);
			limpiarLista();
		} catch (Exception e) {
			mensaje = "Error al guardar";
			e.printStackTrace();
		}
		mensaje(mensaje);
		return "listaRutero.xhtml";
	}

	public String borrar() {
		String mensaje = "operacion exitosa";
		try {
			String sql = "";
			Object[][] params = null;
			sql = "DELETE FROM rutero WHERE rutero=?";
			params = new Object[1][1];
			params[0][0] = getRutero();
			Conexion.update(sql, params);
			limpiarLista();
		} catch (Exception e) {
			mensaje = "Error al eliminarr";
			e.printStackTrace();
		}
		mensaje(mensaje);
		return "listaRutero.xhtml";
	}

	private void limpiarLista() {
		FacesContext context = FacesContext.getCurrentInstance();
		ListaRutero listaRutero = (ListaRutero) context.getApplication()
				.evaluateExpressionGet(context, "#{listaRutero}",
						ListaRutero.class);
		if (listaRutero == null) {
			listaRutero = new ListaRutero();
		}
		listaRutero.setLista(null);
	}

}
